{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Shortest L1 Fuelling"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-14T15:54:46.785206Z",
     "start_time": "2020-08-14T15:54:45.073116Z"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from copy import deepcopy\n",
    "\n",
    "from cpp_algorithms.constants import FU, OB \n",
    "from cpp_algorithms.common_helpers import is_valid\n",
    "from cpp_algorithms.dist_fill import dist_fill "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The functions are all from the `fuel_path` module, just copied into this notebook.\n",
    "\n",
    "**Constants**\n",
    "- `FU` – Value in the dist_map that pertains to the fuelling point, don't change, it's 0.\n",
    "- `OB` – Value in that pertains to an obstacle, don't change, it's -1.\n",
    "\n",
    "**Helpers**\n",
    "- `dist_fill` – Flood fills an area map with L1 distances from the start point.\n",
    "- `is_valid` – Checks if a coord is within bounds and not an obstacle on the given area_map."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Fuel Path Functions"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Functions from `fuel_path_helpers.py`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-14T15:54:46.806717Z",
     "start_time": "2020-08-14T15:54:46.789076Z"
    }
   },
   "outputs": [],
   "source": [
    "def udlr(x,y):\n",
    "    \"\"\"\n",
    "    Returns : Up Down Left Right, from (x,y)\n",
    "    \"\"\"\n",
    "    return [(x,y+1),(x,y-1),(x-1,y),(x+1,y)]\n",
    "\n",
    "def get_step(dist_map, point, obs=OB):\n",
    "    \"\"\"\n",
    "    Get smallest valid L1 step from `point`.\n",
    "    \"\"\"\n",
    "    sh = dist_map.shape\n",
    "    min_ = float('inf')\n",
    "    p = point\n",
    "    for direc in udlr(*point):\n",
    "        x,y = direc\n",
    "        if x < 0 or y < 0 or \\\n",
    "            x >= sh[0] or y >= sh[1]:\n",
    "            continue\n",
    "        val = dist_map[direc]\n",
    "        if val < min_ and val != obs:\n",
    "            min_ = val\n",
    "            p = direc\n",
    "    return p, min_\n",
    "\n",
    "def path_to_fuel(dist_map, loc, fuel=FU, obs=OB):\n",
    "    \"\"\"\n",
    "    PARAMETERS\n",
    "    ---\n",
    "    dist_map : copy of the area_map \n",
    "    loc : (x,y) robot location\n",
    "    fuel : value of fuel on the `dist_map`\n",
    "    obs : value of obstacle on the `dist_map`\n",
    "    \"\"\"\n",
    "    loc = tuple(loc)\n",
    "    path = [loc]\n",
    "    cell = dist_map[loc]\n",
    "    while cell != fuel:\n",
    "        loc, cell = get_step(dist_map, loc, obs)\n",
    "        path.append(loc)\n",
    "    return path\n",
    "\n",
    "def get_refuel_idx(dist_map, coverage_path, fuel_cap):\n",
    "    \"\"\"\n",
    "    PARAMETERS\n",
    "    ---\n",
    "    dist_map : distance map where fuel points are 0 valued, \n",
    "        (m,n) shape nd array\n",
    "    coverage_path : sequence of coords that traverses the `dist_map`.\n",
    "        list of tuples, [(x1,y1),...,(xm,ym)]\n",
    "    fuel_cap : capacity of the fuel required by the drone, int.\n",
    "    \n",
    "    RETURNS\n",
    "    ---\n",
    "    points : indices in the coverage_path where refuelling detour is taken.\n",
    "    fcap : fuel capacity at every point in the coverage_path.\n",
    "    \"\"\"\n",
    "    coverage_path = np.array(coverage_path)\n",
    "    x,y = coverage_path.T\n",
    "    dist = dist_map.copy()[x,y]\n",
    "    plen = dist.shape[0]\n",
    "    fcap = np.full(dist.shape, 0)\n",
    "\n",
    "    points = []\n",
    "\n",
    "    cu = 0 # coverage_path distance travelled by the drone\n",
    "    fuel_req = 0 # initial req 0 cause starting with full tank\n",
    "\n",
    "    i = 0\n",
    "    while True:\n",
    "        i+=1\n",
    "        ini_fuel = (fuel_cap - fuel_req)\n",
    "        assert ini_fuel > 0, \"no fuel left to complete coverage_path\" \n",
    "        # start : how many points have previously been covered.\n",
    "        # end   : how many points can be covered with available fuel.\n",
    "        start = cu\n",
    "        end = cu + ini_fuel\n",
    "        \n",
    "        # If end index overshoots coverage_path length,\n",
    "        # end index should be the coverage_path length (ie last position -1)\n",
    "        if plen - end < 0:\n",
    "            end = plen\n",
    "        sl = slice(start, end)\n",
    "\n",
    "        # Amount of distance that can be travelled by the drone\n",
    "        # taking into account the last loc.\n",
    "        p_seg_len = end - start\n",
    "        fin_fuel = ini_fuel - p_seg_len\n",
    "\n",
    "        # Possible fuel remaining starting index \n",
    "        fcap[sl] = np.arange(ini_fuel, fin_fuel, -1)\n",
    "        # if : Remaining fuel is sufficient.\n",
    "        if ini_fuel - (plen - cu) >=0:\n",
    "            break\n",
    "\n",
    "        freq = fcap[sl] - dist[sl]\n",
    "        try:\n",
    "            idx = freq[freq >= 0].argmin()\n",
    "        except ValueError:\n",
    "            raise ValueError(\"coverage path can't be traversed, insufficient fuel capacity\")\n",
    "        \n",
    "        if len(points) > 1 and points[-1] == points[-2]:\n",
    "            raise ValueError(f\"coverage path can't be traversed, insufficient fuel capacity\\n stuck at coverage path index :{points[-1]}\")\n",
    "\n",
    "        cu += idx\n",
    "\n",
    "        points.append(cu)\n",
    "        fuel_req = dist[cu]\n",
    "    return points, fcap"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Functions from `fuel_path.py`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-14T15:54:46.833290Z",
     "start_time": "2020-08-14T15:54:46.818629Z"
    }
   },
   "outputs": [],
   "source": [
    "def get_fuel_paths(coverage_path, area_map, fuel_points, fuel_capacity):\n",
    "    \"\"\"\n",
    "    Calculates detour paths to the closest fuel point with optimal\n",
    "    fuel consumption.\n",
    "\n",
    "    PARAMETERS\n",
    "    ---\n",
    "    coverage_path : the drone coverage path as a list of tuples\n",
    "        [(x1,y1),...,(xm,ym)]\n",
    "\n",
    "    area_map : 2 dim numpy array of the area, \n",
    "        obstacles : -1, area to map: 0\n",
    "\n",
    "    fuel_points : non obstacle points on the map which are\n",
    "        fuel_points as a list of tuples.\n",
    "        [(x1,y1),...,(xm,ym)]\n",
    "\n",
    "    fuel_capacity : int, fuel capacity of the drone interms of \n",
    "        1 = time required to move to an adjacent cell.\n",
    "\n",
    "\n",
    "    RETURNS\n",
    "    ---\n",
    "    fuel_dist_map : a matrix of distance to the closest fuel point.\n",
    "\n",
    "    detour_indices : indices of the path list where detour for \n",
    "        fuelling has to be taken.\n",
    "\n",
    "    paths_to_refuel : list of shortest path starting at `path[detour_inces[i]]` \n",
    "        and ending at `fuel_points[i]`.\n",
    "\n",
    "    fuel_capacity : list of how much fuel is remaining, same lenght as path.\n",
    "    \"\"\"\n",
    "    fuel_dist_map = dist_fill(area_map, fuel_points)\n",
    "    detour_indices, fuel_capacity = get_refuel_idx(fuel_dist_map, coverage_path, fuel_capacity)\n",
    "\n",
    "    paths_to_refuel = []\n",
    "    for idx in detour_indices:\n",
    "        detour_location = coverage_path[idx]\n",
    "        path_to_refuel = path_to_fuel(fuel_dist_map, detour_location)\n",
    "        paths_to_refuel.append(path_to_refuel)\n",
    "    \n",
    "    return (\n",
    "        fuel_dist_map,\n",
    "        detour_indices,\n",
    "        paths_to_refuel,\n",
    "        fuel_capacity\n",
    "    )\n",
    "\n",
    "def splice_paths(coverage_path, fuel_paths, detour_idx, double_center=False):\n",
    "    \"\"\"\n",
    "    Inserts detour path to the fuelling station into the original path\n",
    "    and returns it along with start and end indices of the full path which.\n",
    "\n",
    "    PARAMETERS\n",
    "    ---\n",
    "    coverage_path : the drone coverage path as a list of tuples\n",
    "        [(x1,y1),...,(xm,ym)]\n",
    "\n",
    "    fuel_paths : list of fuel paths\n",
    "        [[(x1,y1),...,(xn,yn)],...,[...]]\n",
    "\n",
    "    detour_idx : indices where the drone takes a detour from the main path.\n",
    "\n",
    "    double_center : whether the fuel point coordinate should be repeated.\n",
    "\n",
    "\n",
    "    RETURNS\n",
    "    ---\n",
    "    full_path : The entire path of the drone on the map.\n",
    "\n",
    "    detour_start_end_idx : Indices of the full path where\n",
    "        detour starts and ends, they are the same coords.\n",
    "        (start, end) \n",
    "    \"\"\"\n",
    "    coverage_path = deepcopy(coverage_path)\n",
    "    fuel_paths = deepcopy(fuel_paths)\n",
    "    detour_start_end_idx = []\n",
    "    segments = []\n",
    "    last_idx = 0\n",
    "    cumu_len = 0\n",
    "    for idx,fuel_path in zip(detour_idx,fuel_paths):\n",
    "        s_e = []\n",
    "        \n",
    "        seg = np.array(coverage_path[last_idx:idx])\n",
    "        segments.append(seg)\n",
    "        cumu_len += seg.shape[0]\n",
    "        s_e.append(cumu_len)\n",
    "        \n",
    "        if double_center:\n",
    "            splice_in = [*fuel_path,*fuel_path[::-1][:-1]]\n",
    "        else:\n",
    "            splice_in = [*fuel_path,*fuel_path[::-1][1:-1]]\n",
    "        \n",
    "        seg = np.array(splice_in)\n",
    "        cumu_len += seg.shape[0]\n",
    "        s_e.append(cumu_len)\n",
    "        \n",
    "        detour_start_end_idx.append(tuple(s_e))\n",
    "        segments.append(seg)\n",
    "        last_idx = idx\n",
    "    \n",
    "    segments.append(coverage_path[last_idx:])\n",
    "    full_path = np.concatenate(segments)\n",
    "    \n",
    "    return full_path, detour_start_end_idx"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Usage"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-14T15:54:46.841233Z",
     "start_time": "2020-08-14T15:54:46.835620Z"
    }
   },
   "outputs": [],
   "source": [
    "from cpp_algorithms import bcd\n",
    "from cpp_algorithms import get_all_area_maps, get_random_coords\n",
    "from cpp_algorithms.testers.display_funcs import printer\n",
    "from cpp_algorithms.common_helpers import plot, imshow, imshow_scatter\n",
    "from cpp_algorithms.testers.metrics import coverage_metrics, fuel_metrics"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Getting the coverage path using bcd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-14T15:54:47.141174Z",
     "start_time": "2020-08-14T15:54:46.848809Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "     points_to_visit : 1318\n",
      "     obstacle_points : 1182\n",
      "      points_visited : 1318\n",
      "   coverage_path_len : 1742\n",
      "            coverage : 1.0\n",
      "          redundancy : 0.32169954476479523\n",
      "          area_shape : (50, 50)\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAGKCAYAAAASfgYQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nO3deZQkR30n8G9EZlV39TXd091zz3TPpdGJDpAQ92FxY9CCbSzww8biMob1LraXt+u3z/Laz8bPXh4Yw2qNZWEBKwtjgZAQCHFIIKETScNcmulRT89Md0/fR3VVdx2ZEftH9Yykycjoqyrr+n7e09O8/GVk/er8dWRGRAqtNYiIiMLIcidARESVjYWCiIisWCiIiMiKhYKIiKxYKIiIyMq1BRNXfpJDoojqwPQT/1juFKgCNLoQpu3sURARkRULBRERWVlPPRFR/RETj0AmD8PfdaMxLsceALLj4Qdwm6E2vRUQwb9DxcwBiLlnLQ/uQm28Doi1BmPzQ5CTjwAIPyOuOl8BNG0LBvIpyNH7Ae2FttWt+6DbX2IIaMiRHwBeKjzvhi6oDW8whsTkYxDzp8LbyobC6+XEg23n+iBmnglvKyRU9+uAhq5gLDsBOf4goFVoc91+JXTrnvDjL2KhIKIXcUbus8bF+IOAkwCc5mBQZSDyc1CdrwTi7YGwnHocyIwAsWAM2oPITUO37oVed2mwbfIgRPIQEDf8KAJAbgLSbYUyFAoxfwpyZj90vAMQhp+9/AxEfha+qVB4c5CTj0G7LYXnfT4/DTF7CKr79YAInuKXEw8DKge4huKnchD5WaiOK4Gm7cG8Z56GSB4F4usNT1hBZCehG7dAGwqFmOuDnDkA3dAJ48mj3BQAsFAQUWno9Vcb/4IW00/DGbrL3rZpO1TvB4OBzDjc41+yP7CIwd/7h8aQc+Sz9rYA/B03AI0bAtvlya9D+BlrW7XxjdAdVwXbjj0AMfaAta1uuwhq67sD28XccTgnv25POr7e/Jz9LNwjf2NvC8Df9VHAaQhsd/qWeK1fgNcoiIjIioWCiIisWCiIiMiKhYKIiKxYKIiIyIqFgoiIrFgoiIjIioWCiIisWCiIiMiKM7OJagSXCqdSYY+CiIisWCiIiMiKp56IapCYfhpwW80rg2pVWLraz0afGFUlFgqiGnR2BVfv0puCwcwonKHvRpsQVTUWCqJ6s3gjG3/7b0G37A6E5fDdEOkTUWdFFYyFgqheyZjxPgVwGox3p6P6xU8DERFZsUdBVEU4V4LKgT0KIiKyYqEgIiIrnnoiqkbzg3CG7wG0X+5MqA6wUBBVIbEwCJEZgWrbBwgnGM+OQ0t+vak4+EkiqmJqy/WAmwhsF9kvQ8c7y5AR1SJeoyAiIiv2KM5TruGHHVd/siyPS5WFw1+pErFHQUREViwURERkxVNPNl4ayE2Fx2UD0NANCBGMqTyQGbEcXAKJzVxTh8JlxoD4eoCjl6jM+Am0cAa+BmH9sQe83R8r/OCfR478EHLqCWtbf8s7oNdfvaYcqUb5ObjHvwzd3AN/54fKnQ3VORYKG5WFatkJ3fmqYCw7CmfkfgiVhQ5pq2OtUFveHYxpH86p23njGAqn84X/ZyfKmwcRWCiWFnKXMLGc0wEiZr7DmPKKkBgRUTR4gpyIiKxqskdRjWPR15oz52FUh2r8bBKxR0FERFYsFEREZFWTp57O0Rpy/AEgnwzfJb4euvs10eW0HLkZyImHrEtI63WXQbfsijApKjaRHoCY2W8O+plokyGyqO1C4c9Djj0I7TQCMh6Mqyykn4XX+YqKmtQk5o5BTj0JHWsFYJjM56UAf4GFosqJqSchkocBtyUYVIXhsdowR4coapXz61hCasMboTuvCWwX4z+HM/rjMmS0PP7uPwDcpsB25/jNgHn2BlWbeAf8vZ8KbvdzcI/8NXTzzuhzIjoPr1EQEZEVCwUREVmxUBARkRULBRERWdXFxWwiogINaMNAEK2f/88Ue+E+1mOHbH/hcaoQCwUR1TyRGQYAuMf/j3U/99BfhMac4buB4bstbf9X+ONPPw05/XR4PD8Lje3W3MqJhYKIal9uBgCgm3vMQ44XhiFSfeHthQPd8VLASQRj+STEzDOwDVnXbZcADV3Bw049AeGlgfzcUs+grFgoiKhuqPVXQ6+7tPgH3vquVTWTKgsx8UiRkyk+XswmIiIr9ihqhG35ai5BThRUzu9FtS03zx4FERFZsVAQEZFVXZx6EgungengU5XTT5Uhm+IQuVmIsPxFDLrtYkA60SZFK+dnzO+jygEAnJH7oZNHAmExP1j4/8xTxpE4IjMGkRmDNhxbLAwV/j/9FOAFR9uI6acgtA79fAmtgemnIGLrArGzQ0Dl9FPQ8XZD3qchAHNe2fHn81p8/oG8VC48Lz8DMfkoxMKg4XGD2yqJM3IfdPJQYHul5F3bhULGoWUccuYAMHMgfD+tosupCHSsFXKuD87Qd0P38XsS0K17IsyKVizWCuGlre8jYP+xcEbut7a1HVsmjwCGIrSctiI/Zz/2+M9Wn1eqH0j1r6otYH+9dLzT2jZqumHDuX9XSlEwqfFCEYO/748BlTWG3aOfW/xXdc2YVNt/G8pPG2MiMwrn5DesNz2iyqA2vhmq8xWWHXL2GxjJBsBpMIac418G4p3wd7wvEBMLQ3BO3QF/y69Dt+4NHnb4bsi5Pnj7Pm08tnv0c1AdV0JteEPw2NNPwxn7Kbydvw8YehRO/y2F72XvB4Nts+NwBr4Gf9ObjUNY5ch9kLOHQvOCygP+gjkGFO77YcipnHTHlfCadoTm7fb/c8QZmdV2oQAKX6SQL5N2GiB8cxGpaNIBZJsxpL1UxMnQqgkBxMzv45rF2qBjbcbj67OTu0Lihbatobnps3mHtF3y2DJmzuvsd9HaNl6616xcGiqrl2PCi9lERGRVkz0K2/joahu/XAxrfc6ch1E8pXwt6/GzXa2fzWr7jWKPgoiIrFgoiIjIqiZPPa2Ue+RvQmMiNw217T0RZrM059g/QDd0QfW8f8VtRfIo5MTPbXtAbXgjdIthhU2qKiI9AMc0asYwRyHAS5vbojCPYqlxgs6pfwOk4eclMwY0bbO2laM/ASYfDQYWV4Cl6NV1oVCb3rLkmOxKJHJTELkprGb2h0j1AQtnQguBnDsOke5noahyquOl4ctmO43Q8U7oxBZjWLddDORnQ4+tW/dCtQSH1QKAbuqBatsXPjy7eQf0usvMsXgHVPtl4UNcE5uAxs2heVHp1HWh0B1Xweu4KjTuHrwpumSi5DRC9fyOMSQO/WXEyVAp6M6XQ3e+fHVtW3ZDt+xe3QM3rIfaccPq2koXatt7V9eWSorXKIiIyIqFgoiIrOru1NNS464rcQxzufFeF9WB7wWVCnsURERkVXc9ilXJjIVvy4wBTlMgLDJjoYsRVjwvbX7OQGFJ61hrtPkQUVmxUCyDe/zLoTHnzL0RZhIB6UJOPxV6rw4tJPx9fwK4weJIRLWJhcLC3/KOwjLPhjXsxfwA5OTjUJ3XQDf1BuLO6W9GkGHx+b2/B5GbNsbOPudCT4mFgqhesFBY6PVXhwfdJmDycei2i6Gbe4Px0yVLq7QSm6ETIZOadD7aXIioIvBiNhERWbFHcR4On12ZtbweHM5JVB3YoyAiIisWCiIisuKppzUSU49DJJ8tdxpFI0/dAb3+auiWXStuK1LPQcyFrFgKFBZ963wlh9YSVRkWilXSsXboWBtEqr/cqRSVTB4BkkfgXXrTytuO/wyYPw3IeDCoFYTKQTdshG4PWWaaiCoSC8Vqxdvh7/t0aLhmlyhfgm7uger93WAgOwm374vRJ0REa8ZrFEREZMVCQUREVjz1tEK2sf+cY7EyS71enGdBVBnYoyAiIisWCiIisuKppxJzDv91cKP2AABy7ij87ldHnFG5CACAHL4LGL7bvEtiM/ydH4owJyJaDhaKElFdr4CceAR6/UsNwRzE1C+B7Hj0iZVLvAP+xl+D8OeNYZE+CSwMRZwUES0HC0WJqE1vgdr0FnPQz0BO/TLahMpNCOju10CHhOXI/RDZkLvqEVFZ8RoFERFZsUdRRFyivLhK+Xpx6C2VU7X9FrBHQUREViwURERkxVNPZST8DOSpOwLbZfJIIT57sKaW5BapfiBs1FPyEITyCs/ZvAd0807z66F8iNRx6z29deMWoGH9KrImKiHlQ458H/DS5c7EioWiHMTzL/vZomDinLk3imyikZuFM3Dbkrs5p78VGlNdr4La9KbAdpHuh3PqdutxdXMP52hQxRETD0FOPVnuNJbEQlEO0oW395MQIfMonMVehr/jfdDxrmC8//9CN/eWMsPiW5xk6G96E3TLBYGwnPwF5PTT8Pb8obG5c+Kfw3sMZ48d9nqduQdQ4b0NonIRKgMAUG37oNuvCMTl6W8CTiLqtAJYKMqloQu6IfijBgC6oQsiOwHd0A2Y9ol3AcIpcYIl4rYBjd3B7U4TtHTNMQDLuZymYx3G9lrGIVgoqILppl7otouC29sugsiUf2IuL2YTEZEVexQR4hLllYNzNKiUau37zB4FERFZsVAQEZEVTz1VMLcvvPsqMiNQEeZSs7SCHLoL8OaMYbEwDOFnoFp2hR+i81ro1uBILiIAcA7/FYTy7PuM3AeV6gtsl6n+UqW1IuxRVCDV/Zpyp1A/vHnImf0QuWkIlQ/+5xeGLwo/a46nT0IkD5f5SVAlW6pIPL9f8PNVKdijqEC6/XJ47ZeHxp3jN0PH10WYUe1TXa+CXv+ywPazfw36Oz8EyODXxTn2+SjSoxrgXXpTYJuYOw7n5Nfh7boRaNoeiLsHg23KgT0KIiKyYqEgIiIrnnqqELyXRe3gHI36UE/fSfYoiIjIij2KaqXyQG4msFnkZwv/yM8a48jPQnhpc+yFTPHFbSI3Aw1hjAshQ/Ja3JafCc9LeaF5CX8B2vKcCo8xC+00Gh57trCMs6mtlzqXnzblvThiRcyfhBbBr4vIzQDOKJA+acwbMgY4YUvFayCfDImhsMpw09bwOFUGrQufa9N3okawUFQj6UKm+iEtI26cM/cClmXK3SVG69jizsC/rr7t6I+B0R+vqq1MHoVMHg0/9hJLjVuPPf4Q5PhD4cce+FpoTCycgXviVutjr5Zq2QXV+8GSHJuKwz30F+VOoeRYKKqQv+VdEAtDxpjInIGcfByq7SLjJDB55nuF4Z5b321s7wzdVXgMQ1zO7IdID0B1vxY63rGitiI3CTn+EFTLLuh1lwWPPfojCC9tzUvLONTmtwWPPfcsZPIoVOe10I0bV5QXvBSc0R9DJ7ZCGYbHypEfFnozTdsBETxTKxZ7Erq5J3jszBiEvwDVcSV0047QvIxt/SxEZgQiMxqMUUXyt74Lpl6FM3QXVOue6BMqIhaKatS4AbpxgzGkFzZCTj4O3X4FdNs+Q3wISB6B7rjSfOyzP16GuBISTnoAquNKwFAo9Mwz0EIa2+psoVDo9iuh24OFQmcngKnHQvPSIz+Ebr/MHHcageRRqPYrgMSmYN7JwxBe2tw2nwJGf1z4MTc9Z28OzuhPCvMoDIXCOfZ56OZeqK3XB2Ii1Q9n4Dao9iuB5mChUKnnIDJnzDdU8tJwn/274HaqWLr9CuNnRI/9FHBby5BR8fBiNhERWVl7FEsN/+JQvehw+CwBa3uf+X19MX5nlo89CiIismKhICIiq2VfzBZTTwLQ0OuvLmE6VCxi9gBEZjiwXU49CaByFhsjO+GlIcd+Ggx4KcipX1rb+lvfBd1xVYkyqy1y+B6I2YPQnS8PBrWGmH4SwpuPPrEKsexC4QzfAwDwWCgqm9sK7SQgkofKnQmthXCe/+f4z4JhrZc8hDP0XXgsFMty9g8orPK1XtyzeAlVGA6PrTWxVvgXfWbVzdnTqBSFs8L+pjdBd70qEBWTj8I58wN4F34GcBOBON/H1fEv+fPgxnwS7tHPhfbQ5NgDkGMPlD65MuI1CiIismKhICIiqzWderKNQ+aY7Wit5fXmePL6UI9zMPjZLg72KIiIyIqFgoiIrFZ86sk5+r/NAeHA3/4+ILF5rTlRhXP6/9m8kmp+DgKAij4lCmH8vnppCL30u+RdelPxEyoTMXsIzul/L3caVWvFhcK0dDX8LOTsQYjsGDQLRVXTzb1QXa8Mie2G6rwG0L4xLpaYAEbRM31fxfwQkBkpQzblI5JHyp1CVVt2odDNvQA01JZfDwZz05CzB4uXFZWNv/P3woOxFqjNbw8NLzVTmKKjGzdAxzvN39f5Ibj9X4Hf8wHo1r2BcC3PwfC3/wb0uksD2+XJr0P4mTJkVB14jYKIiKxYKIiIyKpkS3jU45jtasU5GLSUSr03DT9/0WCPgoiIrKJZFNDPQcyfAhC+CqNu2gE4DZGkQ6Ulz9wb3JhPLv6Dg2erhfF9BADhQHW9BnCbok1oCWL66cI/3JZgLHMm4mxqSySFQkw9Cmf0J9Z9VNcroTa9OYp0qMTk5OOhMTF/Crr98gizodWyvo/Tz6xpleJScIbuWnonyT9GVyOaQqHy0ELC33mjMe6c/Bqg8lGkQiXkXfBfIeaOGmMiPws58TB0U0/EWdFKeRf9d4jZXwEh92FwztwL4S9EnNXyebs+Etgmk4cLn7/YujJkVP0ivB+FAJq2hoQc83aqLvF10J3XGEM6Owk58TBq+eYuNcNpsN/JMuyUVKUw/M7o/GwZEqkdvJhNRERWFXmHu0odikdBS70XHL5YH/g+1zb2KIiIyIqFgoiIrCrm1JNIHYc8dYc56DQWFqOTsWiToqKTk49AJw8HtovsWBmyIRORHoCYejx01NNZtsUDVduFMA1ckMtYxVU3bYN2W4N5LQxC5OeWbE/FVxGFQrddBDF/CiI3GQz6WYj8LNT6a3ivi2oWayusQOzPm99n4UC3XRJ5WhQkZg9AJJ8FGrpWf4z0CWCVQ1HF/CDQuCG4nUWibCqiUKgt7wyNieRROKdujzAbKgkZsy9hTpXFbYa/5xPGkHPoL6C7Xwu14Q2BmJh+Gs7QXfB3/wEQbw+27b8FWsagej8YPHBmHO7xL4UvBT5yH8TUL+Ff/D/MeR35LHT7FUs8MVoNXqMgIiIrFgoiIrKqiFNPK8UlzKsHlzAnqn7sURARkVVV9iheRGvAdq9bIbl8ea1QHuAZFqNTuehzIaojFVEo3IM3Qcfa4O/79IrbypHvW5dDBgB/xw3QbftWmx5VAuFATj8FOf2UdR8iKr6KKBQAIM7d2GaF8rPQsVaorlcFYypXuA8GV46semrbewDbpDwnsaZx/0QUrmIKxZo4zdCd1wa3e2lgiRsmUXXQLbuAll3lToOoLvFiNhERWdVGj2IF1jrkksNro8OhtUSVgT0KIiKyYqEgIiKrujv19CL5FMTsAQAqdBfdeiHQ0BldTlQaXgpi4uHAZuFny5AMUXWp60IhZvfDGbnfuo/KjkNtvT6ijKgk4h0Qc32h77UWYtVLYhPVg7ouFNCFnoR34WeMk7Wc5758bh+qXmrT26A2XBe+g5CArO+vApENvx1A4c55xh+K4B26qAoJATjxcmdBVLV4MZuIiKzYo1ghLnFeHTgHg6h42KMgIiIrFgoiIrLiqafVys/BOXU7oMLH4euWPVCb3xZhUlQqzvEvmQPLWPXYGfxWYcDEeUR2cq1pEUWChWKVRG4SYmEYqmUn4DQH4/OnIeb6ABaKqqZbL4TKToQPk27cDN1+hbltYgtUx1WhN1ZioaBqwUKxRrr7ddDNvYHtcvBOiPnB6BOi4mrcULgXxmo4jVBb3xUalrMHV5kUUbR4jYKIiKxYKIiIyIqnniJkG5/PORaVo5TvBedoUDVij4KIiKzYoyglnQfSp8wxIYHGzYAMLkZIdJbIzUAbPkMiN12GbKhesVCUioxD5OfgnviX0F38Le+AXn91hElR1RASWjiQU09ATj1h3EULaVz1mKjYWChKRG28DrrtYnNQ+3BOfgPgTXPqmrfv04CfMQelC3/3xyG8udD22m3hqrgUCRaKUnEaoVt2mWPKizYXqkyxtsJ/YRq7odEdXT5EIXgxm4iIrNijqBBrHTbJ4bXVgUNvqRqxR0FEVCZTC5MYnhvC1Hxlr/vFQkFEVAZ3HLwdb/ra6/CNg1/D6756Lb556PZypxSKp55KREw8ArFwGmr7b628cW4GcvxnAEJWLAWg110G3bJ79QkSUdmMp8fxB9+7EVtEFlkPyPjAx++5EW/ovQ7dzZU3gIGFokSckfsAAGr7ytuKuWOQ009Bx9oKE/POl58D/AUWCqIqdXJ2ADEnDs9fwIwCPA3E3BhOzg6wUNDK+Ls/DrhNge3O8ZvLkA0RFUvPul7k/RxOesAXZgrbEiKPnnW9Zc0rDK9REBFFrLu5Gze/8xYk3ATaGtqQcBO4+Z23VGRvAmCPgoioLH7rkhvwht7rcHJ2AD3reiu2SAAsFDWDS5gTVZ/u5u6KLhBn8dQTERFZsUdRrbQGdPjwWeNoKaozYZ+RxW3aM687pv3C54toEQtFNRIScu4Y5KH/ZQxr6cLf+WEgsSnixKhySMjks6GfEQBwTt0RYT5kIuaOwzn5dXi7PgI0bS13OqFYKKqQv+ktEPMnjTGRT0JOPQmRn4VmoahbavNbgXnzTbOEVhBTTwDKvMy94OrGkRHp5wr/nz8FzUJBRdXcA93cYwzphWHIqScjTogqjW7uBZp7zTEA2PD60LZy+G6IuWMlyIqqFU9kExGRFXsUdYBLmNeHtbxPXKKcbNijICIiKxYKIiKy4qmnKiSSRwAnUbhguVL55BIXKgV024WA27za9KgWqBxEyKAIoTW0Nx9xQlROLBRV6Oz4d+/Sm1bcVk48DDn5mHUf5c1BWUbFUI1zWyH8LJzhe0J3EdNPAlveEWFSVE4sFPVG+9BuE/zdnzCGnWOfK8zMpbqlul8H1fGy0Lh79O8hOHO7rrBQ1CUBxFrCY1TfhO3zQfWIF7OJiMiKPQpa0lrG2HMORnVY6n3iPIv6xh4FERFZsVAQEZFVRZ16cp77p8A2sTBc+L+fQUWNs/DSAADnxFehE1vKnExEMuNwhu8u3McghGq/HLrz5REmRUSlVlGFQhsmeZ0bg5OfBrAzynSsRHb83L+tedcQkRkuLIfc3AstY8H4/CDE3LMsFEQ1piIKhXabodsuhjJN4Bn6LuT0U9EntUxqw+vNk9MG74SYH4w8nyj4W98NxDsC250Tt5YhGyIqNV6jICIiKxYKIiKyqohTT1S7bOPvOceCqDqwR0FERFZV06MQs4cA4QS3p08WbhK/MBKM+YWlkEWqD3AaAnGZOl74R2bUfOzcNKB9iJn9wVjy8Ln/C8OFXZEegMgnjXk9P7w0bMBvYbvIjEA7TSH7VCbhm98LAIB0gXhnYS0hqmkiOw7tZ4IBlQcMI+ZeJDdj/gwtDkmn6FV8oTg7j0KmngNSz4Xu5z53c2hMzvUBc33hbfu/Ev74+SScwW+HxzNj1rg1r+lfwu9+TXD77AEAgDNwW2jbSqSFC7lw0vqc/Z4PQLfujTArKgXthiwauFgEnJPfCG/bts/edvRHwOiPQh6X90kph4ovFDqxqfCXtXSh2y4x79O40ThcEyiM7YeXCn+AWFv4hLns5IvmS5z3qBALQ9CJrQibNaEbuoGGzmDAz8IZ+g5g+osLOLfd3/Rm8zDUU3csPm5lUVveBZ0ZNgfzc3DO3Bv+nKlq+D3vD/386daL4Pd8wDopM/SzG2+Ht/ND584EGNvG168oVyqOii8UZy+jqM1vh+64asWtddtFa3r0kswG9zPA0DIeu/UCoKEruL1xE3QlLgMdXwcdX2eOZSejzYVKRrdeEB6Uztp6jM09lbUCAwHgxWwiIlpCFfQogqp1WCWXan6xtb4e1fo5qEaV+lrzOxUN9iiIiMiKhYKIiKyq8tRTrRB+Bu7Bm8J3qLIb2IuxBwEhoQ1DfpeUGYecfhLhwwcEVMdVQOPGtaRINU6kT0CeuTe4fbYw7wlaRZxRbWChKAcZX+aO1VUonLGfAgC8VRQKObsfcvIxaCdhjAt/AQCgNr9t9QlSTdNN2wtL3c8cCMTOfn5EbgI6sSnq1KoeC0U5CAnv0ptCw07fP0JkJwBRR2cGtYaWLvyLPmMMO0f+FtVWOClaqucDoTF5+luQswcjzKa21NEvERERrQYLBRERWfHUU4RsY9E5HnzlSvWaVeqcAQpa6r3i96o42KMgIiIrFgoiIrLiqadKtDjaye0L7zaLzAg4InxRZhTOia8COm8MC1VYyVTLkI+7cKB23ADd3Fua/Kj8zt5vxnDfmcUAxPwgnMN/FYwsfn5E+uSqFiatBSwUFcjf+h7rPR0Arsv/QiI3BeEvQHVcATjB10VMPAwA0OtfHmyscpBTTwDZCYCFomapTW+ByI5Bt15ojne9BmjYYIzp7Djk3DGIXP2ugMxCUYkSm+zzLI7fHL6cdx1T668FDJOp5GKhUJveFGyUTxUKBdU2twn+7o+Fx5t3QDXvMMfmByHnjpUmryrBaxRERGTFQkFERFY89VQhOB68ciz1WnOeRfVYy3vF79zz2KMgIiIr9iiqlMgnzatkZoYX/8XBs+czvV7wUoVYegCQDcZ2Ot4ONG0vYWZUy0Q+CcwegGjeFYylTpQho5VjoahC2m2CTPXDGfyP0H1EegC67aIIs6p8ttdLzh4EQlYX1cKBf/Gf1ddqvlRUQnnWzx9CltevFCwUVUjtuAEqnzTG5MwzkOM/B7QXcVaVS7XsglgYgr/ro8Ggl4Z74l+gul4B1fGyQFhOPQE5+WgEWVKt8/Z+KrBNpI7DOfN96IbOMmS0fCwU1UjGgJAPlo61R5xMFRAOEO80v2aLp5t0SFy7TaXOjuqF6fOXm44+j1VgX5qIiKzYo6gSHD5bOdbyWnNoLVUj9iiIiMiKhYKIiKx46qlGyalfQk79stxp1Dwx9iDE/ED4DjIOteV6wK3s4Y+0ds7Av0ILUe40SoKFosbo1gvKnUJdkTNPAyoPNHQFg/4CROYEVOc44IasTEqVr3EzAEBteIMxrFp2FyZsQkNobdyn2kfPsVDUmlirdYly98fiZ7AAABUWSURBVGB4jFZHt+6F2np9YLtI9cMZuK0MGVFRScf6nULTdvg7fy807Bz9HHTL7qKnFSVeoyAiIisWCiIisuKppxphG5/PORaVY63vBedhRIdLlD+PPQoiIrJij6JehawxI7QPDfPIDSoyrYD8rGUHCcTagBodcllXVNb8nTu7zH1uGtptiTip5WOhqFPusS+ExsTkY8DG6yLMpj7JkfsgJx+z7uNvvR6644qIMqKSEC7k7GHI2cOhuziDd0aY0MqxUNQZb+eHICcfCb1XhTP4bQiVjzirOuWlod0WqE1vCsaUB2f4bsBPR58XFZW//TchsmPGmEgdh5w5ANX9WuNS487gt0ud3rKwUNSb5h6o5p7weIV8MOuG0wDdfnlwu58Dhu+OPh8qvsRm6MRmc8xpBmYOQLXuNd5FUc0dhciMlzjBpfFiNhERWbFHUQe4RHntsL1XHDpbOWrtO8ceBRERWbFQEBGRFU89kZFt8UA5+iMgvj66ZOqYSB2H8DPGmI6tg17/sogzonrEQkErJmcPQQun3GnUNulCN3RBpE8B6VOGHRSk1vDWXQo4jZGnR/WFhYJexLacshy4DTLVD7/3g9AtuwJx58St0IJnM4tCSPh7wy+IislH4Zz5ARBy/wOiYuK3moiIrFgoiIjIiqeeqObGfNertbxPnINBNuxREBGVy9QkMDwETE6WOxMrFgoiojKQ/3Y74r/2Ojhf/xoaXn0t5B23lzulUDz1RCvmDNwG7TYHtgsvDQFARZ9S7VE+3MN/CbXh9VAbXr/i5nL4exDJ8GWtIePwe34HMKxYShEYH0fsozdCtGWBLIAMEPvIjci+8Tqgu7vc2QWwUNCy6ZbdQKofqmU3EO8IxMXUk2XIqkapwiQ7MfUEsIpCIeZPAjJeeM/O56Uhk0cgclPGpa2p9MTAABCLA/MLwAkAGQCxGMTAADQLBVW1xTtwqS3vNBYKyUJRUXTjpsJ7db75IcjkkegTonN0by+QzwELAJ5e3JjIF7ZXIF6jICKKWnc38l+5BTqRgG5rg04kkP/KLRV52glgj4KIqCzU+25A9o3XFU439fZWbJEAWCiICGufK8N5GCtje70qcd4STz0REZEVexS0YiLVf+7CNtUgbwFi4XT4goNCQjf1AE482rzqlcpBJI8atmcL/9deyVNgoaDlk4XlrJ3hu8ucCJWSHH8QcvJR6z7+xuugu18dUUZ1TDZC5GfhnAqfjCdnnoHf/ZqSpsFCQcumWy+At+cToX/BOCduBRo2RJwVFZ3OQ7tNhQl5Bu5z/wSh8+AC56WnNr8NKuTmVCI/VyggKl/yPFgoaPmEABothSCxhfejqBXCARJbjCEtRMTJ1DEZC38f3GR0aUT2SEREVJXYo6AlVdtQPoqe7XPAobMrU4nL/rNHQUREViwURERkxVNPVFQiMwppGMonsoUbsziD/wGVPBiIy8Vx4qa2ACD8BYjJx4H8bGhb5/S/QTduDMbn+kKPLfKpQtvhe6BSffa8DBfqRW4GIvcM4C8EY6n+wrFP3Q7dvMN+7PPbeulz/zfFX/ScncZg+8wYRGYMMB17fujc4+rWvSvKCwCE1hBjD0KOPWiMA4B38f8EpBMap+rCQkFFo1r3QfpZiFzwx/yFP/DG+DJiS8bzsxAy+KNpbeullpdXfha2DriprVgctij8BWClz9lPLysv5Gch/OzK8lp8zkKrlee1XAuDQHPP6ttTRWGhoKLRXa+E3/VKczA7Cbfvi/C3vRe6/bJAWI7cDzH1GPw9Hzc2d478LXT7ZVCb3x6IieQROKfugL/rY0BiU/DYJ78B4aXh7/5o8MD5FNyjfw9/yzuhDePVxfjP4Iz+BP7ujxt7FM6xz0M390JtvT7YNtUPZ+A2eDt/HzD1KE5/CyJzxvycvTTcZ/8O2m02xsXko3DO/KDwnN1EMK/jX4aOd0LteF/w2PNDcPu/Ar/nA+YexfDdEHPHQt8LG+fErRDpkytuR5WN1yiIiMiKhYKIiKx46onWpBLHfFNlWeozwHkWlY89CiIismKPgqKlsoA3H9zuzwPajz4fWjnlASpnji2+tyI3Be02m/eJrzcODKDKxUJB0Vj8YXCG7wGG7ylzMrQWTt8XF4cLW/YZussa9y69qYgZUamxUFA0Yu3wt/+GuTcBwDlzb8QJ0ap5SajWPdAtFwRCYu5ZyFQ/tHSBWHswnp2IIkMqMhYKioYQ0OsuDY+zUFSXxFbozmuC22UMSPXD3/NJIB4sFO7Bm0qfGxUdTxQSEZEVCwUREVnx1BOVFO9lQUvhPIvKxx4FERFZsUdBVUMsDEOMPxTcnh0rQza0Fs6Rz4YEGuHv/DAQa4k2IbKq+EKhW3YD009BJ7aWOxUqId3cY191NL4eYn4Qzvygub2MAy5/XKqF8DPmgJ+BHL0Patt7o02IrCq/UKy7BN66S8qdBpWYv/ND9viuD9tnbgvJ2b5VwLvkzwuz8w1E8lk4Q98pzPymilLxhYIIACAEIPhxrXpCAIY78gEAnIZoc6Fl459gRERkVZF/onE4XH0o5fvMobe1w/Ze8rciGuxREBGRFQsFERFZRXLqScwdg9A+nGP/YN7BN68oSlQ0mdGQz5+KPJV6JscegJj5lTEmclOFfZJHIC2LB3KJ8uhFUygyowAA3bQtZI9tUO2XR5EK1SG9/mrASYTHm3dCt+yJMKP6JVLPASoH3bIrENPxdshUfxmyoqVEejFbbXtPlA9HBADQrRdAtwbvnUDloRs3mH8LMuOQx78Ef/tvGJek5xLl5cNrFEREZMVCQUREVmWbR8Hxz1RKa/l8cQ5G9eAS5dFgj4KIiKyK2qOQU09A56aLeUiiiiDSA+ZFB5exgJ3InIFpGK5ID0B4KcixB4KN/IXl5TV/yrhGksiMQdfoarrG1wuAhoBefw3gho9wo9UpTqFQOQCAmB+ECFkGmqgqyTgAwBm4LXQXvbhP2HbnzPftDxHywwcAcFtDGhWKg3Pq9vDjpvprcpaI9fUa+ynnWZRAcQrF4hdCN20LHY+um3YU5aGIoqQ7robXuBkCOnyfxi3mQGIrvN0fhVj8QyrAzy72NkKOK1zozpebY+teAi/eCRFSCpwTXw09brXyLvwMxPQTENr8nK0FhNakqKee1PqroTlxjmqJdIDmHkuZsBACSGyxttVt+9aQ147V5VWt3AR092tDnzMLRenwYjYREVmVbHgsh6VRtarWzy6H9QZxifLiYI+CiIisWCiIiMhq2aeeRHoAACAH7wwGw0Z1EFHFEpO/gJg9ENguF5cBty3CJ8YeBAxzpuS5JcRLcJl9YRhy8rElj23L27v4zwAZK25edWDF1yjE/Gnjdt3QDd2wcc0JEVFx6MRWcyDeAZ3YDJGbAXIzqz5+2G8BACCfBOIdqz62iZw9ADmzH3oNxxVzR40r05LdiguFf8EflSIPIioi66Qztwn+7o+V5HGdE7dCpE+W5NhAYRJj2G+Qc+Sz0O1XQG1+ayAmT38LcvZgyfKqdbxGQUREViwURERktaZ5FByHTFQ5yvl9rMY5HFyifPnYoyAiIquy3biIiChyKgf4WXNMxgvrc1EACwUR1T5Z+Klzhr4LDH03dDcuUW627ELhb3sPSjKJhoioxNSG6wqThkNuCCXCehkEYAWFQre/pJR5EBGVTqwF/gX/JTRsm81NvJhNRERLYKEgIiIr66knjiMmonrFeRbPY4+CiIisODyWiGqfykPMHgRU3rqb0/clc0DG4e/4bSDWWoLkKh8LBRHVPJF6Ds7QXUvvlx0PjcmhO6F6f7eYaVUNFgoiqn1aAQC8nR8CGroCYef0N4HMCPydHw7ERGYYzuC3IZbojdQyFgoiqh9OAnCbA5u1jEE0dAON3cGY4mQ8XswmIiIr9iiIiFahGpdWXy32KIiIyIqFgoiIrHjqiYhoGcT8IJzjNwe3Z0aW1V43bgpu9JIQ3vzq2qrMsh63GFgoiIhs3JZz/9TxdYHwsguFqW1uYvVt/UYgNwPdsmdZx1gLFgoiIhtROEPvb30XdMdVwfjYA5BjD8C75M+Nd8hzjn4OumU31NZ3Bw89dxzOya/D23Uj0LQ9EJenvwmRGYfacUPwcf0s3CN/A90QHNJbbLxGQUREViwURERkxVNPFaKcY7LrabnkSreWzwHfRyoV9iiIiMiKPYpKpDWQHTu3kJlRQxcgY+ZYdgqwrU8TWwe4TWvLkUovnwS8dHjcbQZibdHlQ3WLhaICidkDcAbvtO6j2i+H2vafgoHsFNy+f7C21Q2d8Pd+ai0pUqkpH07fF60rlmrpwr/wM+F/MBAVCQtFJfILE2n8be8BZEMgLEd+ED7ZZnG76n4tdGJrICymn4BYOFO8XKk0tA+h8lAdV0C3XhQIi7mjkNNPAcpjoaCSY6GoYLplj/kU0dhPl26b2Ardti+wXaT6ABaKqqEbuo3vI/LT0SdDdYsXs4mIyIqFgoiIrHjqKUKVun59ufIq57j/Sn0v1qIWnxNVBvYoiIjIij2KMnH6b4G/6c3GhcDKSUw9AZEZC9/BbYbqfp1x8TMx1wcxdyy8rXShul5tvGdxOTl9X4K//TeBxg3BYHYKcurRwtyWEKr9CqApOMIMfg5y/EFA5YztxPxpwEtCt11iOGihjTNyP1RuJhCWU08U/n/me4X7QJ9/7ORhCNscDACq/SXGUXViYRhiYcjetmUnEO8Ktk2ftLaj6sRCUQ5+FmL+NJxTt8O/8L+VO5sXkWd+UFgtU8aDQZWHUDmo9suBeEew7cRDwPxp4w8XtILwF6Abt0C3X1aCzFcpMwqRHYcz9B34uz8aCIvkQcjJx6HdJgDB4gh/HlLnoQyFQiwMQk48DO00AsIJxs/+kCcPB4/7guIiTPEXxkyFYokiAQBy5lfQhqK9rLapE9Cu5Q8KhxM6awkLRVks/nVqm3ldRrrzWqiNvxbYLmb2wxn8tr1tcw9U7+8GA9lJuH1fLFaKxaOX9174+/7k3HLTL+Qc+/ySD+HveD/QvCOw3T14UyF+4Z8aGuXgHvlr+JveBN31qkBYTD4K58wP4O/7U8ANFgrn+Jeh451QO94XPPb8ENz+r8Dv+QB0695AWA7fDTF3DP6+PzY+H+fQX0B3vxZqwxuCeU0/DWfoLs7tqDG8RkFERFYsFEREZMVTT0XE4Ykrw9eLqDqwR0FERFYsFEREZMVTTyUixh+CDFm8T2j/7L+iS6jsCs9VDt0JDH3HvEtiM/xdHzaG5MC/QqRPhR/eaYS/5xPGORpy9EcQE4+Yszr7XhjmhaxZbhIA4J74F2jD8FiiasFCUSIiOwbIGPT6qwMxrT3IiUcqaz5BqcU74G96C4Q/bwyL9AkgMxLaXCyMAI0bCivqni87AZk8AuTnzJP5MqOAk4DuuDIQ0l4KcvppqNYLl/1UlkvkZwuPEW+HXhd8r8X4z4v+mESlwEJRSk6TcT4C1GKhcOvo7mRCQHe9AmHzm+XI/RCWQgEAumm7eX5H8giQPGJ//Fib+b3IFwpFKWeLq46XQXe/OhjITUNkuOQ7VT5eoyAiIisWCiIisuKppxXi2H8iqjfsURARkRV7FKulFcTc0dAlpOXMrwAUFtILUN7iPvuhYq2Gtvufb2u4Z7bIjEBkRqANxxYLw4X/z+4HVCYYn9kPofLmvLA4XHRmP0SDYQnpxTZyZj+0YfVYkT4JARjzAgA58Quo9dcAMvixK+TlheflLxTyShhWaV28kC1n90NnR4OPO9f3ovxfxEude07KsJDdi94Lw6KAIjcD5PdDNO8MxlLPGZ8LUbVhoVithSE4p+5YcjfbaqsiO26NOyP3rfrYcvYwMBu+PLU1r3zSfuyxB1adlzN896rbCj9rzytkrsSyjj1/Gs786fC2Q3eFt9XavqquodgTVRMWilU6O1HL3/Ze6KZtgbgzeCewMAh/738ONlYe3ONfglr/0sKNfM4jpx6HnHgE3q6PGH9knOduBmLr4O+4IZjXwjCc0/8Of/NboVv3BY89fA9k6jl4F/yR8Xm5x74Ate5S41BSObMfcuwB+L0fNPYonBO3AkLCNywzLuaOwTnzfeiGbvg97w8ee/R+yNnD9rxa90Jtfnvw2MkjcEZ+CH/H+6AbNwXzOvkNwEsb7zcBLwW3/xaorldBrX9ZMK/xn0FOPw1v76eMPQr32Begm3vgb70+mFeqH87w3dCGG/wQVRMWirWKtRpv4qPjHYUbwBhiZ0896ViHuW1scVu8w/zXaKwDOr7O3NZfOLeP8bHjHYWb1ZhiQGEGcTwkr8VtOiSOeAe0kKExa9tYB7R0w/NyEqF5nTt22OsZ74CQcXNbEbPmda4gxjuMhULH262vB1Et4MVsIiKyYqEgIiIrFgoiIrJioSAiIitezF4jeeb7gNMYDGQnANlgbzv9JJDqCwbyc0s+rkifKowyOl/IvI4X8RfMbVEYzRW2cN9ZzulvmedCLM6jkAdvWjoHE+2H5gWVXbK5M3wXIOPBQGZsyQvLcuIXwOyBYGBxBVgbMddnztsPzmMxHd/YVi/1LhQ4p/6f8SI7ctNAvNPaVo7eD0w8FAxkJ5dcdl1MPwMnPRDcnj4JAHCPfT68LQBhes7ZCQCLn6/T3wptH/rZ9TMQk49CTj5qb9u4IRjIjAKGuUMvJCceBkxzcXIz1naA7TOysGRb5GdC2ha+E87IfYBlKL1z4lbAMfwW5WfMr4UBC8Uq6YYNUG37IPyQH7CGbqiW3eaYcKA6roLITZnjsTaopu2AkzCGVfvlkHNHzW1lA1TrBdCJLea8Wy8EcpMQIT9EqmUnVMtec9vEdqjWPRCLo7ZWQ3deG5LXXiAzHJqXbu4xDvcFAN24Bap1L4TKmx+0cSNU20XmmNsE1f4SiHzSHI+1Q7XsQdi9Q1T7lZDpE+a2TgKqbR/Q0G3Ou+1iiMUJfwFCQLXsgm7eZW7bvBOqZfcL7m1ynsRW6HWXmGMNXVBtF0KEFbKGLujmHnMMgF5/NURmzByLtUIs4w8d4+sZ7wC89OraLldDp7l94yaotovNbdwWqPbLwp9XvAOq9YLQ4qo7roIwFFUAhRWm2y60fEYugfDMS/Mb/0BdyX6JrdBhz/k8Qlv+cklc+cnl/VlTR7jWExHVqkbXXIV5jYKIiKxYKIiIyMp66omIiIg9CiIismKhICIiKxYKIiKyYqEgIiIrFgoiIrJioSAiIqv/Dw2pfZhPW4b3AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 504x504 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# ---- Get The Map ----\n",
    "area_maps = get_all_area_maps(\"./test_maps/\")   # all area maps in the folder\n",
    "area_map = area_maps[10]\n",
    "\n",
    "# ---- Calculate Coverage Path ----\n",
    "start_point = get_random_coords(area_map, 1)[0] # returns a random coord not on an obstacle\n",
    "coverage_path = bcd(area_map, start_point)      # calculate coverage path using bcd\n",
    "end_point = coverage_path[-1]\n",
    "\n",
    "# ---- Display The Stuff ----\n",
    "imshow(area_map, figsize=(7,7),cmap=\"Blues_r\");                # shows the area_map\n",
    "plot(coverage_path, alpha=0.5, color=\"orange\")\n",
    "imshow_scatter([start_point], color=\"green\")    # show the start_point   (green)\n",
    "imshow_scatter([end_point], color=\"red\")        # show the end_point     (red)\n",
    "\n",
    "cm = coverage_metrics(area_map, coverage_path)  # calculate coverage metrics\n",
    "printer(cm)                                     # print coverage metrics"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Calculating the fuel path "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-14T15:54:47.218304Z",
     "start_time": "2020-08-14T15:54:47.151032Z"
    }
   },
   "outputs": [],
   "source": [
    "fuel_points = get_random_coords(area_map, 2) # 2 random coords for fuel points\n",
    "fuel_capacity = 300\n",
    "\n",
    "# Compute the fuel paths, returns 4 values. \n",
    "# Check the docstring (Shift-Tab in the function signature).\n",
    "dist_map, detour_indices, fuel_paths, fuel_capacity = \\\n",
    "get_fuel_paths(coverage_path, area_map, fuel_points, fuel_capacity,)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Displaying the return values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-14T15:54:47.293774Z",
     "start_time": "2020-08-14T15:54:47.223213Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "fp   [(42, 35), (41, 35), (41, 34), (41, 33)]\n",
      "idx  [245, 410, 592, 842, 1097, 1320, 1568]\n",
      "fc   [300 299 298 297 296 295 294 293 292 291]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"fp  \", fuel_paths[0][:4])  # All the fuel paths\n",
    "print(\"idx \", detour_indices)     # Indices in the cov path where detours to the fuel point\n",
    "print(\"fc  \", fuel_capacity[:10]) # Remaining fuel capacity at every point in the cov path\n",
    "\n",
    "imshow(dist_map);                 # Map of distances to the fuel points\n",
    "imshow_scatter(fuel_points, color=\"white\", s=10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Displaying the paths"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-14T15:54:47.529353Z",
     "start_time": "2020-08-14T15:54:47.299900Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x720 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "imshow(dist_map,figsize=(10,10))\n",
    "plot(coverage_path, color=\"white\") # The coverage path\n",
    "[plot(fuel_path, color=\"orange\") for fuel_path in fuel_paths]; # The entire fuel path\n",
    "[imshow_scatter([fuel_path[ 0]], color=\"yellow\",s=30) for fuel_path in fuel_paths];   # The fuel start points\n",
    "[imshow_scatter([fuel_path[-1]], color=\"red\",s=30) for fuel_path in fuel_paths];      # The fuel end points"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
